package util;

import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import BEAN.AutorBean;
import BEAN.EdicaoBean;
import BEAN.EditoraBean;
import BEAN.LivroAutorBean;
import BEAN.LivroBean;
import BEAN.LivroCompletoBean;
import BEAN.UsuarioBean;
import TO.AutorTO;
import TO.EdicaoTO;
import TO.EditoraTO;
import TO.LivroAutorTO;
import TO.LivroTO;
import TO.UsuarioTO;

public class Convert {
	
	//------------------ LIVRO COMPLETO
	
	public static LivroCompletoBean livroCompletoTOBean(LivroTO livro, EdicaoTO edicao, EditoraTO editora, String autores){
		LivroCompletoBean livroCompleto = new LivroCompletoBean();
		
		livroCompleto.setAno(String.valueOf(edicao.getAno()));
		livroCompleto.setEditora(editora.getNome());
		livroCompleto.setEstoque(String.valueOf(edicao.getEstoque()));
		livroCompleto.setId(String.valueOf(livro.getId()));
		livroCompleto.setIdioma(livro.getIdioma());
		livroCompleto.setIsbn(String.valueOf(edicao.getNum_edicao()));
		livroCompleto.setNomeAutores(autores);
		livroCompleto.setNum_edicao(String.valueOf(edicao.getNum_edicao()));
		livroCompleto.setNum_paginas(String.valueOf(edicao.getNum_paginas()));
		livroCompleto.setPreco(String.valueOf(edicao.getPreco()));
		livroCompleto.setTitulo(livro.getTitulo());
		
		
		return livroCompleto;
		
	}
	
	
	//------------------ USUARIO
	
	public static UsuarioTO usuarioBeanTO(UsuarioBean usuarioBean){
		UsuarioTO usuarioTO = new UsuarioTO();
		
		usuarioTO.setId(Integer.valueOf(usuarioBean.getId()));
		usuarioTO.setNome(usuarioBean.getNome());
		usuarioTO.setSenha(usuarioBean.getSenha());
		usuarioTO.setCargo(usuarioBean.getCargo());
			
		return usuarioTO;
	}
	
	public static List<UsuarioBean> usuariosTOBean(List<UsuarioTO> usuariosTO){
		
		List<UsuarioBean> usuariosBean = new ArrayList<UsuarioBean>();
		for (UsuarioTO usuarioTO1 : usuariosTO) {
			UsuarioBean usuarioBean = new UsuarioBean();
			usuarioBean = Convert.usuarioTOBean(usuarioTO1);
			usuariosBean.add(usuarioBean);
		}
		
		return usuariosBean;
	}
	
	public static UsuarioTO loginBeanTO(UsuarioBean usuarioBean){
		UsuarioTO usuarioTO = new UsuarioTO();
		
		usuarioTO.setNome(usuarioBean.getNome());
		usuarioTO.setSenha(usuarioBean.getSenha());
			
		return usuarioTO;
	}
	
	public static UsuarioTO usuarioIdBeanTO(UsuarioBean usuarioBean){
		UsuarioTO usuarioTO = new UsuarioTO();
		
		if(usuarioBean.getId()!=null){
		usuarioTO.setId(Integer.valueOf(usuarioBean.getId()));}
					
		return usuarioTO;
	}
	
	public static UsuarioBean loginTOBean(UsuarioTO usuarioTO){
		UsuarioBean usuarioBean = new UsuarioBean();
		
		usuarioBean.setNome(usuarioTO.getNome());
		usuarioBean.setSenha(usuarioTO.getSenha());

		return usuarioBean;
	}
	
	public static UsuarioBean usuarioTOBean(UsuarioTO usuarioTO){
		UsuarioBean usuarioBean = new UsuarioBean();
		
		usuarioBean.setId(String.valueOf(usuarioTO.getId()));
		usuarioBean.setNome(usuarioTO.getNome());
		usuarioBean.setSenha(usuarioTO.getSenha());
		usuarioBean.setCargo(usuarioTO.getCargo());

		return usuarioBean;
	}
	
	
	//------------------ LIVRO
	
	public static LivroTO livroBeanTO(LivroBean livroBean){
		LivroTO livroTO = new LivroTO();
		
		if(livroBean.getId()!=null){
		livroTO.setId(Integer.valueOf(livroBean.getId()));}
		livroTO.setTitulo(livroBean.getTitulo());
		livroTO.setIdioma(livroBean.getIdioma());
		
		return livroTO;
	}
	
	public static LivroBean livroTOBean(LivroTO livroTO){
		LivroBean livroBean = new LivroBean();
		
		livroBean.setId(String.valueOf(livroTO.getId()));
		livroBean.setTitulo(livroTO.getTitulo());
		livroBean.setIdioma(livroTO.getIdioma());
		
		return livroBean;
	}
	
	
	//------------------LIVRO - AUTOR
	
	public static LivroAutorTO livroAutorBeanTO(LivroAutorBean livroAutorBean){
		LivroAutorTO livroAutorTO = new LivroAutorTO();

		livroAutorTO.setId(Integer.valueOf(livroAutorBean.getId()));
		livroAutorTO.setAutor(Integer.valueOf(livroAutorBean.getAutor()));
		livroAutorTO.setLivro(Integer.valueOf(livroAutorBean.getLivro()));
		
		return livroAutorTO;
	}
	
	public static LivroAutorBean livroAutorTOBean(LivroAutorTO livroAutorTO){
		LivroAutorBean livroAutorBean = new LivroAutorBean();
		
		livroAutorBean.setId(String.valueOf(livroAutorTO.getId()));
		livroAutorBean.setAutor(String.valueOf(livroAutorTO.getAutor()));
		livroAutorBean.setLivro(String.valueOf(livroAutorTO.getLivro()));
		
		return livroAutorBean;
	}
	
	//--------------------- EDITORA
	
	public static EditoraTO editoraBeanTO(EditoraBean editoraBean){
		EditoraTO editoraTO = new EditoraTO();
		
		if(editoraBean.getId()!=null){
			editoraTO.setId(Integer.valueOf(editoraBean.getId()));}
		editoraTO.setNome(editoraBean.getNome());
		editoraTO.setEndereco(editoraBean.getEndereco());
		editoraTO.setTelefone(editoraBean.getTelefone());
		
		return editoraTO;
	}
	
	public static EditoraBean editoraTOBean(EditoraTO editoraTO){
		EditoraBean editoraBean = new EditoraBean();
		
		editoraBean.setId(String.valueOf(editoraTO.getId()));
		editoraBean.setNome(editoraTO.getNome());
		editoraBean.setEndereco(editoraTO.getEndereco());
		editoraBean.setTelefone(editoraTO.getTelefone());
		
		return editoraBean;
	}
	
	public static List<EditoraBean> editorasTOBean(List<EditoraTO> editorasTO){
		
		List<EditoraBean> editorasBean = new ArrayList<EditoraBean>();
		for (EditoraTO editoraTO : editorasTO) {
			EditoraBean editoraBean = new EditoraBean();
			editoraBean = Convert.editoraTOBean(editoraTO);
			editorasBean.add(editoraBean);
		}
		
		return editorasBean;
	}
	
	public static EditoraTO editoraIdBeanTO(EditoraBean editoraBean) {
		EditoraTO editoraTO = new EditoraTO();
		
		if(editoraBean.getId()!=null){
			editoraTO.setId(Integer.valueOf(editoraBean.getId()));}
		return editoraTO;
	}
	
	//-----------------------
	
	public static EdicaoTO edicaoBeanTO(EdicaoBean edicaoBean){
		EdicaoTO edicaoTO = new EdicaoTO();

		edicaoTO.setNum_edicao(Integer.valueOf(edicaoBean.getNum_edicao()));
		edicaoTO.setLivro(Integer.valueOf(edicaoBean.getLivro()));
		edicaoTO.setEditora(Integer.valueOf(edicaoBean.getEditora()));
		
		edicaoTO.setIsbn(edicaoBean.getIsbn());
		edicaoTO.setAno(Integer.valueOf(edicaoBean.getAno()));
		edicaoTO.setPreco(Double.valueOf(edicaoBean.getPreco()));
		edicaoTO.setNum_paginas(Integer.valueOf(edicaoBean.getNum_paginas()));
		edicaoTO.setEstoque(Integer.valueOf(edicaoBean.getEstoque()));
		
		return edicaoTO;
	}
	
	public static EdicaoBean edicaoTOBean(EdicaoTO edicaoTO){
		EdicaoBean edicaoBean = new EdicaoBean();
		
		edicaoBean.setNum_edicao(String.valueOf(edicaoTO.getNum_edicao()));
		edicaoBean.setLivro(String.valueOf(edicaoTO.getLivro()));
		edicaoBean.setEditora(String.valueOf(edicaoTO.getEditora()));
		
		edicaoBean.setIsbn(edicaoTO.getIsbn());
		edicaoBean.setAno(String.valueOf(edicaoTO.getAno()));
		edicaoBean.setPreco(String.valueOf(edicaoTO.getPreco()));
		edicaoBean.setNum_paginas(String.valueOf(edicaoTO.getNum_paginas()));
		edicaoBean.setEstoque(String.valueOf(edicaoTO.getEstoque()));
		
		return edicaoBean;
	}
	
	//-----------------------
	
	public static AutorTO autorBeanTO(AutorBean autorBean) throws ParseException{
				
		AutorTO autorTO = new AutorTO();
		
		if (autorBean.getId()!=null){
			autorTO.setId(Integer.valueOf(autorBean.getId()));}
		autorTO.setNome(autorBean.getNome());
		autorTO.setData_nascimento(autorBean.getData_nascimento());
		autorTO.setPais_nascimento(autorBean.getPais_nascimento());
		autorTO.setNota_bibliografica(autorBean.getNota_bibliografica());
		
		return autorTO;
	}
	
	public static AutorBean autorTOBean(AutorTO autorTO){
		
		AutorBean autorBean = new AutorBean();
		
		autorBean.setId(String.valueOf(autorTO.getId()));
		autorBean.setNome(autorTO.getNome());
		autorBean.setData_nascimento(autorTO.getData_nascimento());
		autorBean.setPais_nascimento(autorTO.getPais_nascimento());
		autorBean.setNota_bibliografica(autorTO.getNota_bibliografica());
		
		return autorBean;
	}
	
	public static AutorTO autorIdBeanTO(AutorBean autorBean){
		AutorTO autorTO = new AutorTO();
		
		if(autorBean.getId()!=null){
		autorTO.setId(Integer.valueOf(autorBean.getId()));}
					
		return autorTO;
	}


	
	
}
